Embedded developers are designing and deploying Linux-based systems in an ever-increasing range of applications. Device OEMs increasingly choose Linux as a strategic platform, and. Linux must be able to target multiple application types, diverse CPU architectures, varying board form-factors, special-purpose interconnects and other requirements within a single company. In this encompassing role, Linux is often supplanting a legacy RTOS, and must perform at least on a par with one in terms of responsiveness and throughput.
This tutorial addresses the current and emerging real-time capabilities offered by embedded Linux. In particular, the session details the function and performance attributes of the Preemptible Linux Kernel, the O(1) scheduler and High Resolution POSIX Timers in current implementations. Looking forward, the session covers use of prioritizable work queues in the 2.6 kernel, and the evolution of Linux to support capabilities that include prioritized queuing and priority-inheritance at critical regions, and prioritized interrupt processing. Underlying all session content is the goal of preserving the value of Linux as an open, enterprise-class, standards-compliant platform. Therefore, discussion of on-going Linux progress towards native RTOS-type performance assumes the preservation of existing APIs and semantics, without recourse to sub-kernels or other proprietary technology.